This invention relates to the field of interfaces between systems having data needs such as databases and input devices. Specific examples include SAP(trademark) systems and bar-code readers. In general, these systems are referred to as xe2x80x9cexternal systems.xe2x80x9d
Referring now to FIG. 1, an interface 10 for communication with a first external system 12 and a second external system 14 is seen. External system 12 comprises a database of information housed, for example, on a xe2x80x9cSAP R/3(trademark)xe2x80x9d system or any xe2x80x9cSAPxe2x80x9d system. External system 12 comprises a data entry system (for example, a bar code reader). Other examples of external system 12 and external system 14 for which an interface 10 is needed include J D Edwards, Oracle, Web-based apps, and legacy systems, all of which are known to those of skill in the art.
Each external system 12, 14 have system-specific data format and relational database management system methods designed into it. To move information from one external system to another, an interface 10 must be provided. Traditionally, such interfaces are custom designed and programmed. The work requires a large amount of expertise and knowledge about both external systems 12 and 14. Further, an interface 10 designed for any two specific external systems 12 and 14 will not function for any other pair of external systems. This results in very large expense to move data from one external system to another.
A need exists, therefore, for a method and system for providing an interface between external systems, such that the user of the external systems can configure an interface based solely on knowledge of the data in the external systems, without a need to have an in-depth understanding of the database model and communication protocols of each of the external systems.
Various objects of the invention are addressed in one aspect by an interface for communication with a first external system and a second external system, wherein a method is provided for responding to an event, the event being related to communication with at least one of the first or the second external systems, the method comprising:
receiving a message, the message comprising a metadata event key and a session identifier, the session identifier identifying a workset database for use with the message, the workset database having a workset database structure dependent upon metadata; and
processing an action series dependent upon the metadata event key, wherein said processing is assigned to the session.
According to another aspect of the invention, there is provided an interface for communication with a first external system and a second external system, a method for responding to an event, the event being related to communication with at least one of the first or the second external systems, the interface comprising:
means for receiving a message, the message comprising a metadata event key and a session identifier, the session identifier identifying a workset database for use with the message, the workset database having a workset database structure dependent upon metadata; and
means for processing an action series dependent upon the metadata event key, wherein the processing is assigned to the session.
According to still another aspect of the invention, there is provided a method for communicating data from a first external system to a second external system, the method comprising:
recognizing a message, comprising a event key and session identifier, the session identifier identifying a workset database for use with the message, the workset database having a workset database structure dependent upon metadata; and
processing an action series dependent upon the metadata event key, wherein said processing is assigned to the session.
According to a further aspect of the invention, a system is provided for communicating data from a first external system to a second external system, the method comprising:
means for recognizing a message, comprising a event key and session identifier, the session identifier identifying a workset database for use with the message, the workset database having a workset database structure dependent upon metadata; and
means for processing an action series dependent upon the metadata event key, wherein said processing is assigned to the session.
In even a further aspect a method is provided for selecting a group of records in a database wherein:
the database comprises a set of tables,
at least some records in any particular table are in an ordered relationship with the other records in the table,
at least one field in one of the tables consists of a join key field, the join key field being related to a field in another table, wherein a parent-child relationship between the tables is defined in which the table comprising the join key field is the child of the table comprising the field related to the join key field,
at least some of the tables in the set of tables are related to at least one other table in the set of tables in a parent-child relationship,
at least one of the records of the group carries a xe2x80x9ccurrent recordxe2x80x9d designation, wherein a current table is defined;
the method comprising:
designating one of the set of tables as a xe2x80x9creference table;xe2x80x9d
designating one of the records of the reference table as a xe2x80x9creference record,xe2x80x9d the reference record comprising a field related to a join key field of a record of a descendant table of the reference table;
designating the group of records to comprise: the reference record and all records having a field related to the reference record; and
designating a record in the reference table as the current record.
In yet another aspect, there is provided a system for selecting a group of records in a database wherein:
the database comprises a set of tables,
at least some records in any particular table are in an ordered relationship with the other records in the table,
at least one field in one of the tables consists of a join key field, the join key field being related to a field in another table, wherein a parent-child relationship between the tables is defined in which the table comprising the join key field is the child of the table comprising the field related to the join key field,
at least some of the tables in the set of tables are related to at least one other table in the set of tables in a parent-child relationship,
at least one of the records of the group carries a xe2x80x9ccurrent recordxe2x80x9d designation, wherein a current table is defined;
the system comprising:
means for designating one of the sets of tables as a xe2x80x9creference table;xe2x80x9d
means for designating one of the records of the reference table as a xe2x80x9creference record,xe2x80x9d the reference record comprising a field related to a join key field of a record of a descendant table of the reference table;
means for designating the group of records to comprise: the reference record and all records having a field related to the reference record; and
means for designating a record in the reference table as the current record.
In an even further aspect of the invention a method of querying a SAP system is provided, the method comprising:
reading a list of tables, wherein the list of tables is dependent upon user-defined metadata;
reading a list of fields, wherein the list of fields is dependent upon user-defined metadata;
reading a list of xe2x80x9cwhere clausesxe2x80x9d, wherein the list of xe2x80x9cwhere clausesxe2x80x9d is dependent upon user-defined metadata;
building a message dependent upon said reading a list of tables, fields, and xe2x80x9cwhere clausesxe2x80x9d, and upon data from a workset database; and
sending the message to the xe2x80x9cqueryxe2x80x9d function module of SAP;
running the query function module, wherein the desired results of the query are provided to the message, wherein a modified message results; and
receiving the modified message.
A system of querying a SAP system is also provided as an aspect of the invention, the system comprising:
means for reading a list of tables, wherein the list of tables is dependent upon user-defined metadata;
means for reading a list of fields, wherein the list of fields is dependent upon user-defined metadata;
means for reading a list of xe2x80x9cwhere clausesxe2x80x9d, wherein the list of xe2x80x9cwhere clausesxe2x80x9d is dependent upon user-defined metadata;
means for building a message dependent upon said reading a list of tables, fields, and xe2x80x9cwhere clausesxe2x80x9d, and upon data from a workset database; and
means for sending the message to the xe2x80x9cqueryxe2x80x9d function module of SAP, wherein the message calls the query function module of SAP,
wherein the desired results of the query are provided to the message, wherein a modified message results; and
means for receiving the modified message.
An even further aspect is a method of performing a SAP transaction, the method comprising:
reading a list of screens, fields, and key-press codes, and a SAP transaction code;
building a message, dependent upon the list of screens, fields, and key-press codes, the message comprising BDC data, the screens, fields, and key-press codes being metadata-dependent;
sending the message to SAP xe2x80x9ctransactionxe2x80x9d function module;
running the transaction function module, wherein a modified message results, the modified message including diagnostic codes; and
receiving the modified message.
Further, a system of performing a SAP transaction is provided, the system comprising:
means for reading a list of screens, fields, and key-press codes, and a SAP transaction code;
means for building a message, dependent upon the list of screens, fields, and key-press codes, the message comprising BDC data, the screens, fields, and key-press codes being metadata-dependent;
means for sending the message to SAP xe2x80x9ctransactionxe2x80x9d function module;
means for running the transaction function module, wherein a modified message results, the modified message including diagnostic codes; and
means for receiving the modified message.
Even further still, a method for providing a user-defined interface is provided, the method comprising:
receiving a definition of a workset database dependent upon user-defined metadata;
receiving a map definition dependent upon user-defined metadata, the map being further dependent at least upon fields of the workset database;
receiving a definition of an action series for operating on fields of the workset database, the definition of the action series being dependent upon user-defined metadata; and
receiving a definition of an event being associated with an action series and a map, the event being dependent upon user-defined metadata.
Still further, according to yet another aspect of the invention, a system for providing a user-defined interface, the system comprising:
means for receiving a definition of a workset database dependent upon user-defined metadata;
means for receiving a map definition dependent upon user-defined metadata, the map being further dependent at least upon fields of the workset database;
means for receiving a definition of an action series for operating on fields of the workset database, the definition of the action series being dependent upon user-defined metadata; and
means for receiving a definition of an event being associated with an action series and a map, the event being dependent upon user-defined metadata.